<html>
<head>
<link rel='stylesheet' href='../../js/sh/SyntaxHighlighter.css' type='text/css' />
<script src='../../js/sh/shCore.js'></script>
<script src='../../js/sh/shBrushJava.js'></script>
<style>
* {
font-family:Courier New,monospace;
  padding: 0;
  margin: 0;
  white-space: nowrap;
  font-size: 11px;
}
.dp-highlighter {
  white-space: nowrap;
  overflow: visible;
  width: 600px;
  font-size: 11px;
  font-family:Courier New,monospace;
}
</style>
</head>
<body>
<textarea name='code' class='java:nogutter' rows='15' cols='120'>
/*
 * SmartGWT (GWT for SmartClient)
 * Copyright 2008 and beyond, Isomorphic Software, Inc.
 *
 * SmartGWT is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.  SmartGWT is also
 * available under typical commercial license terms - see
 * http://smartclient.com/license
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 */

import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.form.SearchForm;
import com.smartgwt.client.widgets.form.fields.PickTreeItem;
import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.tree.TreeGrid;
import com.smartgwt.client.widgets.tree.TreeGridField;
import com.smartgwt.sample.showcase.client.data.EmployeeXmlDS;

public class TreeEditingSample implements EntryPoint {
    

    public void onModuleLoad() {
		TreeGridField fieldName = new TreeGridField("Name", 150);
		TreeGridField fieldJob = new TreeGridField("Job", 150);
		TreeGridField fieldSalary = new TreeGridField("Salary");

		TreeGrid employeeTree = new TreeGrid();
		employeeTree.setWidth(500);
		employeeTree.setHeight(250);
		employeeTree.setDataSource(EmployeeXmlDS.getInstance());
		employeeTree.setNodeIcon("icons/16/person.png");
		employeeTree.setFolderIcon("icons/16/person.png");
		employeeTree.setAutoFetchData(true);
		employeeTree.setLoadDataOnDemand(false);
		employeeTree.setCanEdit(true);
		employeeTree.setCanReorderRecords(true);
		employeeTree.setCanAcceptDroppedRecords(true);
		employeeTree.setShowDropIcons(false);
		employeeTree.setShowOpenIcons(false);
		employeeTree.setClosedIconSuffix("");
		employeeTree.setFields(fieldName, fieldJob, fieldSalary);
		
		final ListGrid employeeGrid = new ListGrid();
		employeeGrid.setWidth(500);
		employeeGrid.setHeight(250);
        employeeGrid.setEmptyMessage("Select an Employee from the PickTree Item above.");
		employeeGrid.setDataSource(EmployeeXmlDS.getInstance());
		employeeGrid.setCanEdit(true);
		employeeGrid.setFields(new TreeGridField("Name", 150), new TreeGridField("Job", 150), new TreeGridField("Salary"));

		PickTreeItem searchPickTree = new PickTreeItem();
		searchPickTree.setCanSelectParentItems(true);
		searchPickTree.setShowTitle(false);
		searchPickTree.setDataSource(EmployeeXmlDS.getInstance());
		searchPickTree.setDisplayField("Name");
		searchPickTree.setValueField("EmployeeId");
		searchPickTree.addChangedHandler(new ChangedHandler() {
			public void onChanged(ChangedEvent event) {
				Criteria c = new Criteria();
				c.addCriteria("ReportsTo", (Integer)event.getValue());
				employeeGrid.fetchData(c);
			}
		});

		SearchForm searchForm = new SearchForm();
		searchForm.setWidth(200);
		searchForm.setHeight(30);
		searchForm.setFields(searchPickTree);
				
        VLayout mainView = new VLayout(10);
        mainView.setHeight100();
        mainView.setWidth100();

		mainView.addMember(searchForm);
		mainView.addMember(employeeGrid);
        mainView.addMember(employeeTree);
	
		mainView.draw();
	}

}
</textarea>
<script class='javascript'>
dp.SyntaxHighlighter.HighlightAll("code");
</script>
</body>
</html>
